import request from "@/utils/request";

const BASE_URL = "/manage/member";

const MemberAPI = {
  /**
   * 获取信息
   * @returns 权限信息
   */
  getInfo(queryParams: object) {
    return request<any, MemberInfo>({
      url: `${BASE_URL}/info`,
      method: "get",
      params: queryParams,
    });
  },

  /**
   * 获取角色分页列表
   *
   * @param queryParams 查询参数
   */
  getPage(queryParams: object) {
    return request<any, MemberListVO>({
      url: `${BASE_URL}/page`,
      method: "get",
      params: queryParams,
    });
  },

  /**
   * 添加角色
   *
   * @param data 角色表单数据
   */
  create(data: MemberData) {
    return request({
      url: `${BASE_URL}/create`,
      method: "post",
      data: data,
    });
  },

  /**
   * 修改角色
   *
   * @param id 角色ID
   * @param data 角色表单数据
   */
  update(data: MemberData) {
    return request({
      url: `${BASE_URL}/update`,
      method: "post",
      data: data,
    });
  },
  /**
   * 批量删除角色，多个以英文逗号(,)分割
   *
   * @param ids 角色ID字符串，多个以英文逗号(,)分割
   */
  deleteByIds(data: object) {
    return request({
      url: `${BASE_URL}/delete`,
      method: "post",
      data: data,
    });
  },
};

export default MemberAPI;

/** 部门查询参数 */
export interface MemberPageQuery extends PageQuery {
  /** 搜索关键字 */
  keywords?: string;
  /** 状态 */
  status?: string;
}

/**
   `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键，自增ID',
  `created_at` bigint(20) DEFAULT NULL COMMENT '创建时间戳',
  `updated_at` bigint(20) DEFAULT NULL COMMENT '更新时间戳',
  `deleted_at` datetime(3) DEFAULT NULL,
  `username` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '登录用户名',
  `phone` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '手机号',
  `email` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '电子邮箱',
  `grender` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '性别 1男 2女',
  `nick_name` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '用户昵称',
  `head_img` longtext COLLATE utf8mb4_unicode_ci COMMENT '用户头像',
  `description` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '用户签名',
  `wx_open_id` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '微信 open_id',
  `qq_open_id` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT 'QQ open_id',
  `alipay_open_id` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '支付宝user_id',
  `status` tinyint(3) unsigned DEFAULT '1' COMMENT '状态标识，2禁用，1正常',
  `level_id` bigint(20) unsigned DEFAULT '0' COMMENT '会员等级 0没有  ',
  `vip_time` bigint(20) DEFAULT NULL COMMENT '会员过期时间',
  `popularize_code` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '推广码',
  `top_user_id` bigint(20) unsigned DEFAULT '0' COMMENT '推广上级id',
  `second_user_id` bigint(20) unsigned DEFAULT '0' COMMENT '二级推广人',
  `top_time` bigint(20) DEFAULT NULL COMMENT '推广绑定时间',
  `protocol_id` bigint(20) unsigned DEFAULT '0' COMMENT '用户协议',
  `birthday` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '生日',
  `balance` double DEFAULT '0' COMMENT '余额',
  `integral` double DEFAULT '0' COMMENT '用户积分',
  `login_num` bigint(20) unsigned DEFAULT '0' COMMENT '登录次数',
  `login_last_ip` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '最后登录IP',
  `login_last_at` bigint(20) DEFAULT NULL COMMENT '最后登录时间',
  `app_id` bigint(20) DEFAULT '0' COMMENT '数据归属',
 */
/** 类型 */
export interface MemberInfo {
  /** 数据ID */
  id?: string;
  /** 账号录用户名  */
  username: string;
  /** 密码 */
  password: string;
  /** 手机号 */
  phone: string;
  /** 邮箱 */
  email: string;
  /** 性别 */
  grender: number;
  /** 昵称 */
  nick_name: string;
  /** 头像 */
  head_img: string;
  /** 签名 */
  description: string;
  /** 状态 */
  status: number;
  /** 会员等级 */
  level_id: number;
  /** 会员过期时间 */
  vip_time: string;
  /** 推广码 */
  popularize_code: string;
  /** 推广上级id */
  top_user_id: number;
  /** 二级推广人 */
  second_user_id: number;
  /** 推广绑定时间 */
  top_time: string;
  /** 用户协议 */
  protocol_id: number;
  /** 生日 */
  birthday: string;
  /** 余额 */
  balance: number;
  /** 积分 */
  integral: number;
  /** 登录次数 */
  login_num: number;
  /** 最后登录IP */
  login_last_ip: string;
  /** 最后登录时间 */
  login_last_at: string;
}

export interface MemberList extends MemberInfo {
  /** 更新时间 */
  updated_at: string;
  /** 创建时间 */
  created_at: string;
}

/** 类型 */
export interface MemberData {
  /** 数据ID */
  id?: string;
  /** 账号录用户名  */
  username: string;
  /** 密码 */
  password: string;
  /** 手机号 */
  phone: string;
  /** 邮箱 */
  email: string;
  /** 性别 */
  grender: number;
  /** 昵称 */
  nick_name: string;
  /** 头像 */
  head_img: string;
  /** 状态 */
  status: number;
  /** 会员等级 */
  level_id: number;
}

export interface MemberListVO {
  /** 父级ID */
  total: number;
  list: MemberList[];
}
